package org.example.Thread01;

public class Test01 {
    private static long count=1000000000;
    private static long a=0;
    private static long b=0;
    public static void main(String[] args) throws InterruptedException {
        func1();
        func2();
    }
    //串行
    private static void func1(){
        //记录func1()开始运行的时间
        long begin=System.currentTimeMillis();
        //对a累加
        for(long i=0;i<count;i++){
            a++;
        }
        //对b累加
        for(long i=0;i<count;i++){
            b++;
        }
        //记录func1()完成累加后的时间
        long end=System.currentTimeMillis();
        System.out.println("串行运行时间："+(end-begin));
    }
    //并行
    private static void func2() throws InterruptedException {
        //记录func2()开始运行的时间
        long begin=System.currentTimeMillis();
        //用线程对a累减
        Thread t1 = new Thread(()->{
            for(long i=0;i<count;i++){
                a--;
            }
        });
        //用线程对b累减
        Thread t2 = new Thread(()->{
            for(long i=0;i<count;i++){
                b--;
            }
        });
        //启动线程t1和t2
        t1.start();
        t2.start();
        //等待线程t1和t2运行完成
        t1.join();
        t2.join();
        //记录func2()完成累减后的时间
        long end=System.currentTimeMillis();
        System.out.println("并行运行时间："+(end-begin));
    }
}

